package com.guli.order.service;
/*
 * @Author 罗俊
 * @date 2020/11/27 - 4:26 下午
 *
 */

import com.alipay.api.AlipayApiException;
import com.guli.order.vo.AliPayAsyncCallBackVo;

import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.util.concurrent.ExecutionException;

public interface AliPayService {
    String getOrderInfoAndGoToAliPayment(String orderSn) throws ExecutionException, InterruptedException, AlipayApiException;

    void updatePaymentStatus(AliPayAsyncCallBackVo aliPayAsyncCallBackVo) throws Exception;

    /**
     * 验证支付宝的签名
     * */
    void confirmSign(HttpServletRequest request) throws UnsupportedEncodingException, AlipayApiException;

    /**
     * 关闭支付宝订单
     *
     * @param trade_no	String	特殊可选	64	该交易在支付宝系统中的交易流水号。最短 16 位，最长 64 位。和out_trade_no不能同时为空，如果同时传了 out_trade_no和 trade_no，则以 trade_no为准。	2013112611001004680073956707
     * @param out_trade_no	String	特殊可选	64	订单支付时传入的商户订单号,和支付宝交易号不能同时为空。 trade_no,out_trade_no如果同时存在优先取trade_no	HZ0120131127001
     * @param operator_id	String	可选	28	卖家端自定义的的操作员 ID	YX01
     * @throws AlipayApiException
     */
    void closeAliPay(String trade_no,String out_trade_no,String operator_id) throws AlipayApiException;
}
